package main

import (
	 "strings"
   	 "net/http"
	"encoding/json"
	"github.com/gin-gonic/gin"
)

// 定义一个结构体来存储参数
type Parameters struct {
	Param1 string `json:"param1"`
	Param2 string `json:"param2"`
}

// 处理函数，解析参数并返回处理后的数据
func processData(c *gin.Context) {
	// 获取参数
	param1 := c.Query("param1")
	param2 := c.Query("param2")

	// 对参数进行处理，这里简单示范转换为大写
	param1 = strings.ToUpper(param1)
	param2 = strings.ToUpper(param2)

	// 将处理后的数据封装到一个结构体中
	result := Parameters{
		Param1: param1,
		Param2: param2,
	}

	// 将处理后的数据转换为JSON格式
	jsonData, err := json.Marshal(result)
	if err != nil {
		c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to marshal JSON"})
		return
	}

	// 返回JSON数据
	c.Data(http.StatusOK, "application/json", jsonData)
}

func main() {
	// 初始化Gin引擎
	r := gin.Default()

	// 设置路由，当请求路径为 /process 时，调用 processData 函数
	r.GET("/process", processData)

	// 启动Gin引擎
	r.Run(":8080")
}
